package com.diligent.cloud.printer.client.util;

import org.apache.logging.log4j.util.Strings;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

/**
 * @Description:
 * @Author: xf107397
 * @Date: Create：in 2020-07-02:15:45
 * @Modified By：
 */
public class TemplateFileUtils {
    /**
     * 文件使用完成后请调用 {@link TemplateFileUtils#deleteFile} 方法删除临时文件
     * @param file
     * @return
     */
    public static String saveFile(MultipartFile file,String dirPath,String fileType) {
        try {
            // 截取上传的文件名称
//            String newFileName = DigestUtils.md5DigestAsHex(fileName.getBytes());
            String newFileName = UUID.randomUUID().toString().replace("-","");
            // 拼接上传文件位置
            String newFilePath = dirPath + File.separatorChar + newFileName + fileType;
            // 创建文件存放路径实例
            File dest = new File(dirPath);
            // 判断文件夹不存在就创建
            if (!dest.exists()) {
                dest.mkdirs();
            }
            // 创建文件实例
            File uploadFile = new File(newFilePath);
            // 判断文件已经存在，则删除该文件
            if (uploadFile.exists()) {
                uploadFile.delete();
            }
            // 利于spring中的FileCopyUtils.copy()将文件复制
            FileCopyUtils.copy(file.getBytes(), uploadFile);
            return newFilePath;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return Strings.EMPTY;
    }
    /**
     * 删除文件
     * @param files
     */
    public static void deleteFile(File... files) {
        for (File file : files) {
            if (file.exists()) {
                file.delete();
            }
        }
    }
}
